
#ifndef _SELECT_REACTOR_H
#define _SELECT_REACTOR_H


namespace NetIO
{

class DllExport Select_Reactor: public Reactor_Impl
{
public:
	Select_Reactor( void );

	virtual ~Select_Reactor( void );

	virtual void cancel_handle( Socket handle );

	virtual int run_once( );

private:
	virtual int register_handler_i( Socket &handle );

	virtual int start_op( Socket &handle, Operation *op );

private:
	int collect_fdset( Handle_Set &read_set, Handle_Set &write_set, Handle_Set &except_set );
};

};
#endif


